// 这里自定义了一个插件方法
import Vue from 'vue'
import Load from './loading.vue'
import { Loading } from 'vant'
Vue.use(Loading)
// Loading 现在只是组件对象 要注册才能变为组件
/*
现在是将Loading注册为组件 然后得到注册组件的实例
然后调用$mount().$el 得到dom结构插入到body中

Vue.extend()通过这种方式注册为组件 可以在外部得到这个实例对象
eg：
 const FeatureConstructor = Vue.extend(Main) 返回的是构造函数
 const loading1 = new FeatureConstructor()  loading1就是实例对象

*/
const loading = {
  install (Vue) {
    // 得到组件的构造器(就是构造函数)
    const FeatureConstructor = Vue.extend(Load)
    // 得到组件实例
    const loadingvm = new FeatureConstructor()
    // 然后插到body中
    document.body.appendChild(loadingvm.$mount().$el)
    Vue.prototype.$showLoading = () => {
      // 显示
      loadingvm.isShow = true
    }
    Vue.prototype.$hideLoading = () => {
      // 消失
      loadingvm.isShow = false
    }
  }
}
export default loading
